Interprocedural Dataflow Analysis in the Presence of Large Libraries
نویسندگان
چکیده
Interprocedural dataflow analysis has a large number of uses for software optimization, maintenance, testing, and verification. For software built with reusable components, the traditional approaches for whole-program analysis cannot be used directly. This paper considers component-level analysis of a main component which is built on top of a pre-existing library component. We propose an approach for computing summary information for the library and for using it to analyze the main component. The approach defines a general theoretical framework for dataflow analysis of programs built with large extensible library components, using pre-computed summary functions for library-local execution paths. Our experimental results indicate that the cost of component-level analysis could be substantially lower than the cost of the corresponding whole-program analysis, without any loss of precision. These results present a promising step towards practical analysis techniques for largescale software systems built with reusable components.
منابع مشابه
IDE Dataflow Analysis in the Presence of Large Object-Oriented Libraries
A key scalability challenge for interprocedural dataflow analysis comes from large libraries. Our work addresses this challenge for the general category of interprocedural distributive environment (IDE) dataflow problems. Using pre-computed library summary information, the proposed approach reduces significantly the cost of whole-program IDE analyses without any loss of precision. We define an ...
متن کاملLock Inference in the Presence of Large Libraries
Atomic sections can be implemented using lock inference. For lock inference to be practically useful, it is crucial that large libraries be analysed. However, libraries are challenging for static analysis, due to their cyclomatic complexity. Existing approaches either ignore libraries, require library implementers to annotate which locks to take or only consider accesses performed upto one leve...
متن کاملPrecise Interprocedural Dataflow Analysis via Graph Reachability ( Extended
This paper shows how to find precise solutions to a large class of interprocedural dataflow-analysis problems in polynomial time. In contrast with intraprocedural dataflow analysis, where “precise” means “meet-over-all-paths”[16], a precise interprocedural dataflow-analysis algorithm must provide the “meet-over-all-valid-paths” solution. (A path is valid if it respects the fact that when a proc...
متن کاملTYPECHEF meets SPLLIFT Interprocedural Data-Flow Analysis of Configurable Software Systems
Today’s commonly used cryptographic algorithms for enforcing the confidentiality of data and communications are considered as sound. When implemented correctly, for most of the state-of-the-art cryptographic algorithms there are no known practical attacks that would allow a third party to read encrypted data. However, the most popular cryptographic library implementing these algorithms OPENSSL ...
متن کاملEfficient Flow-Sensitive Interprocedural Data-Flow Analysis in the Presence of Pointers
This paper presents a new worklist algorithm that significantly speeds up a large class of flow-sensitive data-flow analyses, including typestate error checking and pointer analysis. Our algorithm works particularly well for interprocedural analyses. By contrast, traditional algorithms work well for individual procedures but do not scale well to interprocedural analysis because they spend too m...
متن کامل